1. Field
The following description relates to a technology for executing an external operation in a prologue and/or an epilogue of a software-pipelined loop.
2. Description of the Related Art
Software pipelining (SP) is a scheduling technique for a processor that exploits instruction-level parallelism. The software pipelining may transform a loop such that the iterations of the loop are in the form of a pipeline and the iterations of the loop are executed in parallel with one another.
An interval at which each of successive iterations starts is referred to as an initiation interval (II). The II corresponds to a time used to execute a body of a pipelined loop. One goal of software pipelining is to minimize the initiation interval and thereby maximize the throughput in executing the loop. Typically a pipelined loop is split into three parts: a prologue, a kernel, and an epilogue. A kernel is a body of the pipelined loop and usually has the most execution efficiency because it utilizes as much processor resources as possible. The prologue and the epilogue are transit regions which typically are located before and after the kernel, respectively, and have relatively low resource utilization as compared to the kernel.